unit FormCadastroDespesaUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.DBCtrls, Vcl.Buttons,
  Vcl.Grids, Vcl.DBGrids, Vcl.Mask, Vcl.ExtCtrls, Data.DB, Datasnap.DBClient;

type
  TFormCadastroDespesa = class(TForm)
    Panel3: TPanel;
    BitBtnSair: TBitBtn;
    BitBtnSalvar: TBitBtn;
    BitBtnEditar: TBitBtn;
    BitBtnExcluir: TBitBtn;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    RadioGroup1: TRadioGroup;
    MaskEditCodigo: TMaskEdit;
    EditPlanoContas: TEdit;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    CheckBoxLancamento: TCheckBox;
    RadioGroup2: TRadioGroup;
    procedure BuscaID(id:string);
    procedure RadioGroup1Click(Sender: TObject);
    procedure BitBtnSalvarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormCadastroDespesa: TFormCadastroDespesa;

implementation

{$R *.dfm}

uses DMDadosUnt, DMCaixaUnit;

procedure TFormCadastroDespesa.BitBtnSalvarClick(Sender: TObject);
begin

 DMCaixa.cdsConsultaPlanoContas.Close;
 DMCaixa.cdsConsultaPlanoContas.Params[0].AsString := MaskEditCodigo.Text;
 DMCaixa.cdsConsultaPlanoContas.Open;

 if not DMCaixa.cdsConsultaPlanoContas.IsEmpty then
 begin
   MessageDlg('Codigo ja existente',mtInformation,[mbOK],0);
   MaskEditCodigo.SetFocus;
   exit;
 end;

 BuscaID('ID_PLANO_CONTAS');

 DMCaixa.cdsPlanoContas.Open;
 DMCaixa.cdsPlanoContas.Append;
 DMCaixa.cdsPlanoContasID_PLANO_CONTAS.AsInteger := DMDados.cdsControleVALOR.AsInteger+1;
 DMCaixa.cdsPlanoContasDESCRICAO.AsString := EditPlanoContas.Text;
 DMCaixa.cdsPlanoContasCODIGO.AsString := MaskEditCodigo.Text;
 DMCaixa.cdsPlanoContasNIVEL.AsInteger := RadioGroup1.ItemIndex+1;

 if CheckBoxLancamento.Checked then
 begin
   DMCaixa.cdsPlanoContasLANCAMENTO.AsString := 'S';
 end
 else
 begin
   DMCaixa.cdsPlanoContasLANCAMENTO.AsString := 'N';
 end;

 if RadioGroup2.ItemIndex = 0 then
 begin
   DMCaixa.cdsPlanoContasTIPO.AsString := 'C';
 end
 else
 begin
   DMCaixa.cdsPlanoContasTIPO.AsString := 'D';
 end;

 DMCaixa.cdsPlanoContas.Post;
 DMCaixa.cdsPlanoContas.ApplyUpdates(-1);

 DMDados.cdsControle.Edit;
 DMDados.cdsControleVALOR.AsInteger := DMDados.cdsControleVALOR.AsInteger + 1;
 DMDados.cdsControle.Post;
 DMDados.cdsControle.ApplyUpdates(-1);


end;

procedure TFormCadastroDespesa.BuscaID(id: string);
begin
  DMDados.cdsControle.Close;
  DMDados.cdsControle.Params[0].AsString := id;
  DMDados.cdsControle.Open;
end;

procedure TFormCadastroDespesa.FormShow(Sender: TObject);
begin
  MaskEditCodigo.SetFocus;
  MaskEditCodigo.SelectAll;

  DMCaixa.cdsPlanoContas.Open;
end;

procedure TFormCadastroDespesa.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
  0:
  begin
    MaskEditCodigo.EditMask := '!999;1;_';
    MaskEditCodigo.MaxLength := 3;

  end;
  1:
  begin
    MaskEditCodigo.EditMask := '!999.999;1;_';
  end;
  2:
  begin
    MaskEditCodigo.EditMask := '!999.999.999;1;_';
  end;
  3:
  begin
    MaskEditCodigo.EditMask := '!999.999.999.999;1;_';
  end;
  end;
  MaskEditCodigo.SetFocus;
  MaskEditCodigo.SelectAll;
end;

end.
